package org.dromara.vehicle.modules.geoFence.domain.bo;

import org.dromara.vehicle.modules.geoFence.domain.GeoFence;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 地理围栏业务对象 geo_fence
 *
 * @author ckk
 * @date 2025-07-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = GeoFence.class, reverseConvertGenerate = false)
public class GeoFenceBo extends BaseEntity {

    /**
     * 主键
     */
    private Long id;

    /**
     * 围栏名称
     */
    @NotBlank(message = "围栏名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 围栏类型 (1: 圆形围栏, 2: 多边形围栏, 3: 线形围栏, 4: 行政区划围栏)
     */
    @NotNull(message = "围栏类型 (1: 圆形围栏, 2: 多边形围栏, 3: 线形围栏, 4: 行政区划围栏)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer type;

    /**
     * 状态(0: 禁用, 1: 启用)
     */
    @NotNull(message = "状态(0: 禁用, 1: 启用)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer status;

    /**
     * 描述
     */
    private String remark;

    /**
     * 圆形围栏中心点坐标(格式X,Y)
     */
    private String center;

    /**
     * 圆形围栏半径(米)
     */
    private Integer radius;

    /**
     * 多边形/线形围栏顶点坐标(格式 X1,Y1;X2,Y2;)
     */
    private String points;

    /**
     * 线形围栏沿线偏移距离(米)
     */
    private String bufferradius;

    /**
     * 行政区划围行政区划编码
     */
    private String adcode;


}
